package com.wpp.Test;

public class QuickTest2 {

    //首先传入一个数组进去
    public static void quickSort(int[] array){

        int len;//定义数组的长度
        //判断数组是否符合条件
        if (array==null || (len=array.length) == 0 || len==1){
            return;
        }
        Sort(array,0,len-1);
        for (int i : array) {
            System.out.println(i);
        }
    }

    public static void main(String args[]) {
        int[] a={2,4,1,1};
       quickSort(a);

    }
    public static void Sort(int array[],int left,int right){

        if (left>right){
            return;
        }

        //定义基数，初始化i,j
        int base=array[left];
        int i=left,j=right;
        //临时变量temp;
        int temp;
        while (i!=j){
            //从右边开始找
            while (array[j]>=base&&i<j){
                j--;
            }
            //从左边开始找
            while (array[i]<=base&&i<j){
                i++;
            }

            //交换数
            if (i<j){
                temp=array[i];
                array[i]=array[j];
                array[j]=temp;
            }
        }

        //如果i==j了
        //交换基数

        array[left]=array[i];
        array[i]=base;


        Sort(array,left,i-1);
        Sort(array,i+1,right);




    }





}
